#ifndef __DXT_PP_H__
#define __DXT_PP_H__

///////////////////////////////////////////////////////////////////////////////////////////////////
//convert dds data into dpp data
//
//input:	buffer of dds data
//inSize	size of input buffer, in bytes
//output:	buffer of dpp data
//outSize:	size of output buffer, in bytes
//compressLevel:	0 means lossless, otherwise lossy, the bigger the better result, the smaller the smaller size of result
//
//return:	actual size of compressed data, in bytes
size_t dppCompress( const unsigned char* input, size_t inSize, unsigned char* output, size_t outSize, int compressLevel = 10 );

///////////////////////////////////////////////////////////////////////////////////////////////////
//get extracted size of dpp data
//
//input:	buffer of dpp data
//
//return:	size of extracted data, in bytes
size_t dppGetExtractedSize( const unsigned char* input );

///////////////////////////////////////////////////////////////////////////////////////////////////
//convert dpp data into dds data
//
//input:	buffer of dpp data
//inSize:	size of input buffer, in bytes
//output:	buffer of dds data
//outSize:	size of output buffer, in bytes
//
//return:	actual size of extracted data, in bytes
size_t dppExtract( const unsigned char* input, size_t inSize, unsigned char* output, size_t outSize );

///////////////////////////////////////////////////////////////////////////////////////////////////
//convert dds file into dpp file
//
//dstFilename:	filename of dpp file
//srcFilename:	filename of dds file
//compressLevel:	0 means lossless, otherwise lossy, the bigger the better result, the smaller the smaller size of result
//
//return:	succeeded
bool dds2dpp( const char* dstFilename, const char* srcFilename, int compressLevel = 10 );

///////////////////////////////////////////////////////////////////////////////////////////////////
//convert dpp file into dds file
//
//dstFilename:	filename of dds file
//srcFilename:	filename of dpp file
//
//return:	succeeded
bool dpp2dds( const char* dstFilename, const char* srcFilename );

#endif